Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Прямі та ітераційні методи розв’язування систем лінійних алгебраїчних рівнянь

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
КСС
Факультет:
УІ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2015
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Комп’ютерні методи дослідження систем керування
Група:
СІ-21

Частина тексту файла

Міністерство освіти і науки України Національний університет «Львівська політехніка» Звіт про виконання лабораторної роботи №2 «Прямі та ітераційні методи розв’язування систем лінійних алгебраїчних рівнянь» З курсу «Комп’ютерні методи дослідження систем керування» Мета роботи: вивчити найпоширеніші прямі та ітераційні методи розв’язування систем лінійних алгебричних рівнянь та способи їх застосування для обчислення визначників і обертання матриць. Завдання: 10 Знайти обернену матрицю методом Гауса з вибором головного елемента по стовпцю система №1  Система №1  де ; ; порядковому № завдання; № групи (наприклад, для КС-21 )   Короткі теоретичні відомості: Опис алгоритму Встановлюємо значення для одиничної матриці . У верхньому циклі по змінній  здійснюємо пошук  стовпців оберненої матриці  шляхом розв’язування  систем рівнянь (5.4) методом Гауса. У прямому ході методу Гауса ми замість вектора вільних членів  передаємо методу відповідний стовпець одиничної матриці . Після закінчення роботи методу Гауса здійснюємо присвоєння обчислених значень елементів вектора невідомих  відповідному стовпцю оберненої матриці . Виконуємо перевірку алгоритму. Скалярно помножимо матрицю  на знайдену їй обернену матрицю . У результаті маємо отримати одиничну матрицю  (в межах похибки обчислень). З метою уникнення ситуації, коли головні елементи можуть бути рівними чи близькими нулю необхідно використовувати метод Гауса з вибором головного елемента. У наведеному вище алгоритмі потрібно лише замінити використаний звичайний метод Гауса на метод із повним чи частковим вибором головного елемента (стр. 9, 11, 13). Єдиною модифікацією для них є лише  на початку прямого ходу. Блок-схема алгоритму роботи програми 1 2 3 4 5 6 7 Список ідентифікаторів: const int n=4; - Розмірність матриць double M{{8.3, 2.62, 4.1, 1.9} {3.92, 8.45, 7.78, 2.46} {3.77, 7.21, 8.04, 2.28} {2.21, 3.65, 1.69, 6.69} }, L{-10.65, 12.21, 15.45, -8.35}; - Задані матриці double E[n][n], V[n][n], A[n][n], C[n][n], Invers[n][n]; - Двовимірні матриці double P[n], Y[n]; - Одновимірні матриці int w; - змінна для лічильника одного з циклів double sum, value, max; - змінні для проміжних одинарних значень Остаточна версія програми: Файл MyForm.h const int n=4; double M{{8.3, 2.62, 4.1, 1.9} {3.92, 8.45, 7.78, 2.46} {3.77, 7.21, 8.04, 2.28} {2.21, 3.65, 1.69, 6.69} }, L{-10.65, 12.21, 15.45, -8.35}; double E[n][n], V[n][n], A[n][n], C[n][n], Invers[n][n]; double P[n], Y[n]; int w; double sum, value, max; for (int i=0; i<n; i++) for (int j=0; j<n; j++) { if (i=j; E[i][j]=1) else E[i][j]=0; } for (int b=0; b<n; b++) { for (int i=0; i<n; i++) for (j=0; j<n; j++) { V[i][j]=A[i][j]; P[i]=E[i][j]; } for (k=0; k<n; k++) { max=abs(V[k][k]); w=k; for (int l=k+1, l<n; l++) if (max<V[l][k]; max=ABS(V[l][k]); w=l) value=P[k]; P[k]=P[w]; P[w]=value; for (int d=0; d<n; d++) { value=V[k][d]; V[k][d]=V[w][d]; V[w][d]=value; } Y[k]=P[k]/V[k][k]; for (int i=k+1; i<n; i++) { P[i]=P[i]-V[i][k]*Y[k]; for (int j=k+1; k<n; k++) { C[k][j]=V[k][j]/V[k][k]; V[i][j]=V[i][j]-V[i][k]*C[k][j]; } } } for(int i=0; i<n; i++) for (int j=i+1; j<n; j++) { sum=C[i][j]+x[j]; x[i]=y[i]-sum; } for (int i=0; i<n; i++) { Invers[i][b]=x[i] } } richTextBox1->AppendText( Invers[0][0]); richTextBox1->AppendText( Invers[0][1]); richTextBox1->AppendText( Invers[0][2]); richTextBox1->AppendText( Invers[0][3]); richTextBox1->AppendText( Invers[1][0]); richTextBox1->AppendText( Invers[1][1]); richTextBox1->AppendText( Invers[1][2]); richTextBox1->AppendText( Invers[1][3]); richTextBox1->AppendText( Invers[2][0]); richTextBox1->AppendText( Invers[2][1]); richTextBox1->AppendText( Invers[2][2]); richTextBox1->AppendText( Inv...
Антиботан аватар за замовчуванням

17.12.2015 18:12

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини